Virtual machines and script interpreters are known. Software applications designed for execution by a process virtual machine, or a script interpreter, are shielded from the underlying hardware and operating system of the computing platform on which they run. As such, these applications, which can be referred to as non-native applications, cannot access the security resources provided by the computing platform and, cannot use protective measures available to native applications. Additionally, many established software security and protection techniques, which are designed to protect native code (e.g., machine code), cannot be directly adapted to process non-native applications. Security approaches that provide restricted protection of a computing system (e.g., sandbox security), within which a non-native application can run, may limit this adaptation capability even further. As such, process virtual machines or script interpreters are fundamentally un-trusted and vulnerable to attacks.
In recent years, tablet computers and smart phones have been the subject of exceptional growth, as have the number of software applications available to them. Many such software applications are non-native applications that have little computing platform dependency. As an example, some applications for tablet computers and smart phones can be loaded, triggered and run within a web browser that cannot provide a native environment and acceptable security.
Therefore, improvements in protection and security of non-native applications that run on virtual machines and script interpreters are desirable.